#[macro_use] extern crate rocket;
mod cors;
mod routers;

use std::{env, fs};
use routers::{index, user};

fn set_upload_temp_dir() -> Result<(), std::io::Error> {
    let cur_path = env::current_dir()?;
    let cur_path_str = cur_path.to_str().unwrap();
    env::set_var("TEMP", format!("{}\\tmp", cur_path_str)); // windows
    env::set_var("TMP", format!("{}\\tmp", cur_path_str)); // windows
    env::set_var("TMPDIR", format!("{}/tmp", cur_path_str)); // unix

    fs::create_dir_all(env::temp_dir())?;
    println!("USING temp path: {}", env::temp_dir().to_str().unwrap());
    Ok(())
}

#[launch]
fn rocket() -> _ {
    set_upload_temp_dir().unwrap();
    rocket::build().attach(cors::CORS).mount("/", index::all()).mount("/user", user::all())
}
